As proposed in High-Efficiency Video Coding (HEVC) specification, one picture can be partitioned into multiple tiles. FIG. 1 is a diagram illustrating tiles adopted in the HEVC specification. FIG. 2 is a diagram illustrating a conventional decoding order of the tiles shown in FIG. 1. As shown in FIG. 1, one picture 10 is partitioned into a plurality of tiles T11′-T13′, T21′-T23′, T31′-T33′ separated by row boundaries (i.e., horizontal boundaries) HB1′, HB2′ and column boundaries (i.e., vertical boundaries) VB1′, VB2′. Inside each tile, largest coding units (LCUs)/treeblocks (TBs) are raster scanned, as shown in FIG. 2. For example, LCUs/TBs orderly indexed by the Arabic numbers in the same tile T11 are decoded sequentially. Inside each multi-tile picture, tiles are raster scanned, as shown in FIG. 2. For example, the tiles T11′-T13′, T21′-T23′ and T31′-T33′ are decoded sequentially. Specifically, one picture can be uniformly partitioned by tiles or partitioned into specified LCU-column-row tiles. A tile is a partition which has vertical and horizontal boundaries, and it is always rectangular with an integer number of LCUs/TBs included therein. Hence, tile boundaries must be LCU/TB boundaries.
There are two types of tiles, independent tiles and dependent tiles. As to the independent tiles, they are treated as sub-pictures/sub-streams. Hence, encoding/decoding LCUs/TBs of an independent tile (e.g., motion vector prediction, intra prediction, entropy coding, etc.) does not need data from other tiles. Besides, assume that data of the LCUs/TBs is encoded/decoded using arithmetic coding such as a context-based adaptive binary arithmetic coding (CABAC) algorithm. Regarding each independent tile, the CABAC statistics are initialized/re-initialized at the start of the tile, and the LCUs outside the tile boundaries of the tile are regarded as unavailable. For example, the CABAC statistics at the first LCU/TB indexed by “1” in the tile T11′ would be initialized when decoding of the tile T11′ is started, the CABAC statistics at the first LCU/TB indexed by “13” in the tile T12′ would be re-initialized when decoding of the tile T12′ is started, the CABAC statistics at the first LCU/TB indexed by “31” in the tile T13′ would be re-initialized when decoding of the tile T13′ is started, and the CABAC statistics at the first LCU/TB indexed by “40” in the tile T21′ would be re-initialized when decoding of the tile T21′ is started.
However, encoding/decoding LCUs/TBs of a dependent tile (e.g., motion vector prediction, intra prediction, entropy coding, etc.) has to consider data provided by other tiles. Hence, vertical and horizontal buffers are required for successfully decoding a multi-tile encoded picture/compressed frame having dependent tiles included therein. Specifically, the vertical buffer is used for buffering decoded information of LCUs/TBs of an adjacent tile beside a vertical boundary (e.g., a left vertical boundary) of a currently decoded tile, and the horizontal buffer is used for buffering decoded information of LCUs/TBs of another adjacent tile beside a horizontal boundary (e.g., a top horizontal boundary) of the currently decoded tile. As a result, the buffer size for decoding the multi-tile encoded picture/compressed frame would be large, leading to higher production cost. Besides, assume that data of the LCUs/TBs is encoded/decoded using arithmetic coding such as a CABAC algorithm. Regarding a dependent tile, the CABAC statistics may be initialized at the start of the tile or inherited from another tile. For example, the CABAC statistics at the first LCU/TB indexed by “1” in the tile T11′ would be initialized when decoding of the tile T11′ is started, the CABAC statistics at the first LCU/TB indexed by “13” in the tile T12′ would be inherited from the CABAC statistics at the last LCU/TB indexed by “12” in the tile T11′ when decoding of the tile T12′ is started, the CABAC statistics at the first LCU/TB indexed by “31” in the tile T13′ would be inherited from the CABAC statistics at the last LCU/TB indexed by “30” in the tile T12′ when decoding of the tile T13′ is started, and the CABAC statistics at the first LCU/TB indexed by “40” in the tile T21′ would be inherited from the CABAC statistics at the last LCU/TB indexed by “39” in the tile T13′ when decoding of the tile T21′ is started.
As the conventional decoder design employs a tile scan order for decoding a multi-tile encoded picture, the vertical buffer (column buffer) is necessitated by the tile scan order for buffering decoded information of LCUs/TBs of an adjacent tile beside a vertical boundary (e.g., a left vertical boundary) of a currently decoded dependent tile, which increases the production cost inevitably. Thus, there is a need for an innovative entropy decoder design which is capable of reducing or omitting the vertical buffer (column buffer) when decoding the multi-tile encoded picture/compressed frame.